3.1 部署模式

# 会话模式(Session Mode)

会话模式是先启动一个集群,保持一个会话。在这个会话中通过客户端提交作业,集群启动时所有资源都已经确定,所以所有提交的作业会竞争集群中的资源。

tip:会话模式比较适合于单个规模小、执行时间短的大量作业。

# 单作业模式(Per-Job Mode)

会话模式因为资源共享导致很多问题,所以为了更好地隔离资源,可以考虑每个提交的作业启动一个集群,这就是所谓的单作业模式

作业完成后,集群就会关闭,所有资源也会释放且运行更加稳定,因此实际生成应用也推荐使用这种方式。

tip:Flink本身无法直接这样运行,单作业模式需要借助一些资源管理框架来启动,比如Yarn、K8S

# 应用模式(Application Mode)

会话模式、单作业模式的应用代码都是在客户端执行的,然后由客户端提交给JobManager,这种方式客户端需要占用大量网络带宽去下载依赖和数据包发送给JobManager,且提交作业应用都是用同一个客户端,这样会加重客户端所在节点的资源消耗。

因此有个解决方法是:不需要使用客户端,直接把应用提交给JobManager运行,也就是需要为每一个提交的应用单独启动一个JobManager,也就是创建一个集群这个JobManager只为执行这一个应用而存在,执行结束之后JobManager也就关闭了,这就是所谓的应用模式。

tip:应用模式和单作业模式,都是提交作业之后才创建集群,单作业是通过客户端提交的,客户端解析出的每一个作业对应一个集群。而应用模式下,是直接由JobManager执行应用程序的。

接下来,演示如何基于不同的部署模式提交作业

Last Updated: 9/19/2023, 11:24:47 AM